"""
1.设置日志的收集级别
2，可以将日志输出到文件和控制台
3.以下这些方法
info（）
debug（）
error（）
warning（）
critical（）

"""

import logging
from logging import Logger
from day15.MyConf import Myconf


class MyLogger(Logger):
    def __init__(self):  #file是文件路径
        conf = Myconf("conf.ini")
        file = conf.get("log", "file")
        # 1.设置日志的名字、日志的收集级别。继承引用的父类代码（源码）
        super().__init__(conf.get("log", "name"), conf.get("log", "level"))
        # 2.可以将日志输出到文件和控制台
        # 自定义日志格式（Formatter）
        fmt_str = "%(asctime)s %(name)s %(levelname)s %(filename)s %(lineno)d %(message)s"
        # 实例化一个日志格式类
        formatter = logging.Formatter(fmt_str)


        # 实例化渠道(Handle).
        # 控制台(StreamHandle) 创建handle，输出到控制台
        handle1 = logging.StreamHandler()
        # 设置渠道当中的日志显示格式  handle的控制台用刚才创建的formatter日志格式
        handle1.setFormatter(formatter)
        # 将渠道与日志收集器绑定起来
        self.addHandler(handle1)

        if file:
            # 创建一个日志文件，输出到文件
            handle2 = logging.FileHandler(file, encoding="utf-8")
            # 绑定日志文件的格式
            handle2.setFormatter(formatter)
            self.addHandler(handle2)




logger = MyLogger()

if __name__ == '__main__':
    logger.info("这里有一个bug")
    logger.error("这里有一个错误")
    logger.warning("这里有一个警告信息")